#!/usr/bin/env python3
"""
脚本名称：19_exe.py
面试描述：Python 中如何读取大文件，例如内存只有 4G，如何读取一个大小为 8G 的文件
考察点:
生活比喻：
作者：Gavin
创建日期：2025-05-27
版本：1.0
依赖库：无
使用方法： python 19_exe.py
"""

# 1. 逐行读取：使用 read1ine()方法，可以一行一行地读取文件，这样只会在内存中存储当前读取的那一行数据，而不会整体占用过多内存。
with open('large_file.txt', 'r') as file:
    for line in file:
        # 处理每一行数据
        process(line)


# 2. 分块读取：分块读取是另一种方式，通过 read(size)方法，可以一次读取指定大小的块。这在处理二进制文件或需要按块处理数据时非常有效。
def read_in_chunks(file_object, chunk_size=1024):
    while True:
        data = file_object.read(chunk_size)
        if not data:
            break
        yield data


with open('large_file.dat', 'rb') as file:
    for chunk in read_in_chunks(file):
        # 处理每一块数据
        process(chunk)
